home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / plnk081.zip / pilot-link.0.8.1 / include / pi-source.h < prev    next >
C/C++ Source or Header  |  1997-08-03  |  4KB  |  162 lines

  1. #ifndef _PILOT_SOURCE_H_
  2. #define _PILOT_SOURCE_H_
  3.  
  4.  
  5. #ifdef NeXT
  6. # include <sys/types.h>
  7. # include <sys/socket.h>
  8. #endif
  9.  
  10. #ifdef __EMX__
  11. # define OS2
  12. # include <sys/types.h>
  13. # include <sys/socket.h>
  14. # include <sys/param.h> /* for htonl .. */
  15. # define ENOMSG 150
  16. # define strcasecmp stricmp
  17. # define strncasecmp strnicmp
  18.  
  19. # include <sys/ioctl.h>
  20. # include <sys/time.h>
  21. # include <sys/errno.h>
  22. # include <time.h>
  23. # include <fcntl.h>
  24. # include <unistd.h>
  25. # include <string.h>
  26. # include <stdlib.h>
  27. /*# include <netinet/in.h>*/
  28. # include <dirent.h>
  29. # include <errno.h>
  30. # include <assert.h>
  31. # define TTYPrompt "com#"
  32. # define RETSIGTYPE void
  33. # define HAVE_SIGACTION
  34. # define HAVE_DUP2
  35. # define HAVE_SYS_SELECT_H
  36. # define HAVE_STRDUP
  37. #else
  38. # include "pi-config.h"
  39. #endif
  40.  
  41. #ifdef SGTTY
  42. # include <sgtty.h>
  43. #else
  44. # include <termios.h>
  45. #endif
  46.  
  47. #ifdef __cplusplus
  48. extern "C" {
  49. #endif
  50.  
  51. #include "pi-socket.h"
  52. #include "pi-macros.h"
  53.  
  54. #define PI_SLP_MTU 1038
  55.  
  56. struct pi_skb {
  57.   struct pi_skb *next;
  58.   int len;
  59.   unsigned char source, dest, type, id;
  60.   unsigned char data[PI_SLP_MTU];
  61. };
  62.  
  63. struct pi_mac {
  64.   int fd;
  65.   int state;
  66.   int expect;
  67.   int ref;
  68.   struct pi_skb *rxb;
  69.   unsigned char *buf;
  70. };
  71.  
  72. struct sockaddr;
  73.  
  74. struct pi_socket {
  75.   struct sockaddr *laddr;
  76.   int laddrlen;
  77.   struct sockaddr *raddr;
  78.   int raddrlen;
  79.   int type;
  80.   int protocol;
  81.   unsigned char xid;
  82.   unsigned char nextid;
  83.   int sd;
  84.   int initiator;
  85.   struct pi_mac *mac;
  86. #ifndef OS2
  87. # ifndef SGTTY
  88.    struct termios tco;
  89. # else
  90.    struct sgttyb tco;
  91. # endif
  92. #endif
  93.   struct pi_skb *txq;
  94.   struct pi_skb *rxq;
  95.   struct pi_socket *next;
  96.   int rate;          /* Current port baud rate */
  97.   int establishrate; /* Baud rate to use after link is established */
  98.   int connected; /* true on connected or accepted socket */
  99.   int accepted;  /* only true on accepted socket */
  100.   int majorversion;
  101.   int minorversion;
  102.   int tickle;
  103.   int busy;
  104.   int version; /* In form of 0xAABB where AA is major version and BB is minor version */
  105.   int dlprecord; /* Index used for some DLP functions */
  106.   int tx_packets;
  107.   int rx_packets;
  108.   int tx_bytes;
  109.   int rx_bytes;
  110.   int tx_errors;
  111.   int rx_errors;
  112.   char last_tid;
  113.   int (*socket_connect) PI_ARGS((struct pi_socket*, struct sockaddr*, int));
  114.   int (*socket_listen) PI_ARGS((struct pi_socket*, int));
  115.   int (*socket_accept) PI_ARGS((struct pi_socket*, struct sockaddr*, int*));
  116.   int (*socket_close) PI_ARGS((struct pi_socket*));
  117.   int (*socket_tickle) PI_ARGS((struct pi_socket*));
  118.   int (*socket_bind) PI_ARGS((struct pi_socket*, struct sockaddr*, int));
  119.   int (*socket_send) PI_ARGS((struct pi_socket*, void * buf, int len, unsigned int flags));
  120.   int (*socket_recv) PI_ARGS((struct pi_socket*, void * buf, int len, unsigned int flags));
  121.   int (*serial_close) PI_ARGS((struct pi_socket*));
  122.   int (*serial_changebaud) PI_ARGS((struct pi_socket*));
  123.   int (*serial_write) PI_ARGS((struct pi_socket*));
  124.   int (*serial_read) PI_ARGS((struct pi_socket*, int));
  125. #ifdef OS2
  126.   unsigned short os2_read_timeout;
  127.   unsigned short os2_write_timeout;
  128. #endif
  129. #ifndef NO_SERIAL_TRACE
  130.   char * debuglog;
  131.   int debugfd;
  132. #endif
  133. };
  134.  
  135. /* internal functions */
  136.  
  137. #include "pi-args.h"
  138.  
  139. extern void pi_socket_recognize PI_ARGS((struct pi_socket*));                                              
  140. extern struct pi_socket *find_pi_socket PI_ARGS((int sd));
  141. extern int crc16 PI_ARGS((unsigned char *ptr, int count));
  142. extern char * printlong PI_ARGS((unsigned long val));
  143. extern unsigned long makelong PI_ARGS((char * c));
  144. extern void dumpline PI_ARGS((const unsigned char *buf, int len, int addr));
  145. extern void dumpdata PI_ARGS((const unsigned char * buf, int len));
  146.  
  147. #if defined(PADP_TRACE)
  148. #define Begin(a) fprintf(stderr,"Begin %s\n",#a)
  149. #define At(a)    fprintf(stderr,"At %s\n",#a)
  150. #define End(a)   fprintf(stderr,"End %s\n",#a)
  151. #else
  152. #define Begin(a)
  153. #define At(a)
  154. #define End(a)
  155. #endif
  156.  
  157. #ifdef __cplusplus
  158. }
  159. #endif
  160.  
  161. #endif /* _PILOT_SOCKET_H_ */
  162.